package com.wlyuan.index.api;

import com.alibaba.fastjson.JSONObject;
import com.wlyuan.index.api.dto.QuotationIndexDTO;
import com.wlyuan.index.api.dto.combine.*;
import com.wlyuan.index.api.vo.CombineIndexScrollVO;
import com.wlyuan.index.api.vo.CombineIndexSumVO;
import com.wlyuan.index.api.vo.CombineIndexVO;
import com.wlyuan.tools.Page;

import java.util.List;

/**
 * @author yuanjie
 */
public interface ICombineIndexService {
    void index(Long combineId);

    void index(List<Long> combineIds);

    void index(CombineIndexDTO combine);

    void index(QuotationIndexDTO quotation);

    void reindex(Long combineId);

    void reindex(CombineReindexDTO reindex);

    Page<CombineIndexVO> search(CombineIndexSearchDTO search);

    CombineIndexScrollVO scroll(CombineIndexFilterDTO filter);

    CombineIndexScrollVO scroll(String scrollId);

    CombineIndexSumVO searchSum(CombineIndexFilterDTO filter);

    void reindexAll(CombineReindexAllDTO reindex);

    void reindexAll(List<Long> waybillIds);

    Page<CombineIndexVO> search(CombineIndexFilterDTO filter);

    void remove(Long combineId);

    CombineIndexVO getIndexById(Long combineId);

    JSONObject getCombineById(Long combineId);

    JSONObject insight(Long combineId);

    JSONObject diffs();
}
